import request from "@/utils/request";

const EXAMINER_BASE_URL = "/api/examiner";

class ExaminerAPI {
  /**
   * 获取考官列表
   *
   * @param queryParams 查询参数（可选）
   * @returns 考官树形表格数据
   */
  static getList(queryParams?: ExaminerQuery) {
    return request<any, ExaminerVO[]>({
      url: `${EXAMINER_BASE_URL}`,
      method: "get",
      params: queryParams,
    });
  }

  /** 获取考官下拉列表 */
  static getOptions() {
    return request<any, OptionType[]>({
      url: `${EXAMINER_BASE_URL}/create`,
      method: "get",
    });
  }

  /**
   * 获取考官表单数据
   *
   * @param id 考官ID
   * @returns 考官表单数据
   */
  static getFormData(id: number) {
    return request<any, ExaminerForm>({
      url: `${EXAMINER_BASE_URL}/${id}`,
      method: "get",
    });
  }

  /**
   * 新增考官
   *
   * @param data 考官表单数据
   * @returns 请求结果
   */
  static add(data: ExaminerForm) {
    return request({
      url: `${EXAMINER_BASE_URL}`,
      method: "post",
      data: data,
    });
  }

  /**
   * 修改考官
   *
   * @param id 考官ID
   * @param data 考官表单数据
   * @returns 请求结果
   */
  static update(id: number, data: ExaminerForm) {
    return request({
      url: `${EXAMINER_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  }

  /**
   * 删除考官
   *
   * @param ids 考官ID，多个以英文逗号(,)分隔
   * @returns 请求结果
   */
  static deleteByIds(ids: string) {
    return request({
      url: `${EXAMINER_BASE_URL}/${ids}`,
      method: "delete",
    });
  }
  static import(file: File) {
    const formData = new FormData();
    formData.append("file", file);
    return request({
      url: `${EXAMINER_BASE_URL}/import`,
      method: "post",
      data: formData,
      headers: {
        "Content-Type": "multipart/form-data",
      },
    });
  }
}

export default ExaminerAPI;

/** 考官查询参数 */
export interface ExaminerQuery {
  /** 考官类型 */
  type?: number;
  /** 搜索关键字 */
  name?: string;
  /** 手机号 */
  phone?: string;
  /** 执考专业 1朗诵2主持*/
  exam_major: number;
  /** 状态 */
  status?: number;
}

/** 考官类型 */
export interface ExaminerVO {
  /** 考官ID(新增不填) */
  id?: number;
  /** 考官名称 */
  name?: string;
  /** 所属代理id */
  agentName: string;
  /** 考官类型 */
  type: number;
  /** 联系人 */
  person: string;
  /** 联系电话 */
  phone: string;
  /** 邮箱 */
  email: string;
  /** 所属省市区 */
  area: Array<string>;
  /** 详细地址 */
  address: string;
  /** 是否可以报名 */
  sign_able: number;
  /** 是否可以修改报名信息 */
  edit_sign_able: number;
  /** 营业执照图片地址 */
  license: string;
  /** 法人身份证人像面图片地址 */
  legalFace: string;
  /** 法人身份证国徽面图片地址 */
  legalBack: string;
  /** 品牌图片地址 */
  brand: string;
  /** 是否可以查询成绩 */
  select_able?: number;
  /** 是否可以打印成绩 */
  print_able?: number;
  /** 是否不限制评估报告 */
  report_able?: number;
  /** 是否限制报名时间 */
  astrict_sign_time?: number;
  /** 创建时间 */
  createTime?: string;
  /** 状态(1:启用；0：禁用) */
  /** 考官ID(新增不填) */
  id?: number;
  /** 考官名称 */
  name?: string;
  /** 性别1男2女 */
  gender: number;
  /** 执考专业1朗诵2主持 */
  exam_major: number;
  /** 手机号 */
  phone: string;
  /** 身份证号 */
  id_card: string;
  /** 毕业院校 */
  school: string;
  /** 所属省市区 */
  area: Array<string>;
  /** 详细地址 */
  address: string;
  /** 学历 */
  edu_back: number;
  /** 职称 */
  job_title: string;
  /** 专业 */
  major: string;
  /** 工作单位 */
  work_unit: string;
  /** 状态(1:启用；0：禁用) */
  status?: number;
}

/** 考官表单类型 */
export interface ExaminerForm {
  /** 考官ID(新增不填) */
  id?: number;
  /** 考官名称 */
  name?: string;
  /** 性别1男2女 */
  gender: number;
  /** 执考专业1朗诵2主持 */
  exam_major: number;
  /** 手机号 */
  phone: string;
  /** 身份证号 */
  id_card: string;
  /** 毕业院校 */
  school: string;
  /** 所属省市区 */
  area: Array<string>;
  /** 详细地址 */
  address: string;
  /** 学历 */
  edu_back: number;
  /** 职称 */
  job_title: string;
  /** 专业 */
  major: string;
  /** 工作单位 */
  work_unit: string;
  /** 状态(1:启用；0：禁用) */
  status?: number;
}
